// RegularPolygonColumn.h: interface for the RegularPolygonColumn class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_REGULARPOLYGONCOLUMN_H__E8BBF68F_C61A_4BA3_8E57_21A29E76EB57__INCLUDED_)
#define AFX_REGULARPOLYGONCOLUMN_H__E8BBF68F_C61A_4BA3_8E57_21A29E76EB57__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "UEMetaEntity.h"

class RegularPolygonColumn : public CUEMetaEntity
{
public:
	RegularPolygonColumn( int nEdge = 6 );
	virtual ~RegularPolygonColumn();

public:
	virtual AcDb3dSolid* Create();

private:
	void GeneratePointArray( AcGePoint3dArray& arPt );

public:
	void Radius( double radius ) { m_Radius = radius; }
	void Height( double height ) { m_Height = height; }
	void Position( const AcGePoint3d& pt ) { m_ptBase = pt; }
	void ZAxis( const AcGeVector3d& dir ) { m_vZ = dir; }
	void XAxis( const AcGeVector3d& dir ) { m_vX = dir; }

protected:
	double Height() const { return m_Height; }
	const AcGePoint3d& Position() const { return m_ptBase; }
	const AcGeVector3d& ZAxis() const { return m_vZ; }

private:
	int m_nEdge;
	double m_Radius;
	double m_Height;
	AcGePoint3d m_ptBase;
	AcGeVector3d m_vZ;
	AcGeVector3d m_vX;
};

#endif // !defined(AFX_REGULARPOLYGONCOLUMN_H__E8BBF68F_C61A_4BA3_8E57_21A29E76EB57__INCLUDED_)
